import { app, shell, BrowserWindow, globalShortcut, ipcMain, Menu } from 'electron'
import { join } from 'path'
import { electronApp, optimizer, is } from '@electron-toolkit/utils'

// app.setAppUserModelId('程序娃PC')
// app.setName('测试娃111')
function createWindow() {
  //取消顶部菜单栏
  // Menu.setApplicationMenu(null)

  console.log(`执行创建窗口的方法了`)
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    //窗口大小
    // width: 1080,
    // height: 920,
    show: false,
    //隐藏标题栏
    // titleBarStyle: 'hidden',
    //隐藏菜单栏
    autoHideMenuBar: true,
    //应用图标
    icon: join(__dirname, '../../resources/icon.ico'),
    ...(process.platform === 'linux' ? { icon } : {}),
    webPreferences: {
      preload: join(__dirname, '../preload/index.js'),
      sandbox: false,
      // 禁用同源策略，允许跨域请求
      webSecurity: false,
      // 禁止build环境使用DevTool
      devTools: is.dev ? true : false
    }
  })

  mainWindow.on('ready-to-show', () => {
    mainWindow.show()
  })

  mainWindow.webContents.setWindowOpenHandler((details) => {
    shell.openExternal(details.url)
    return { action: 'deny' }
  })

  if (is.dev && process.env['ELECTRON_RENDERER_URL']) {
    mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])
  } else {
    mainWindow.loadFile(join(__dirname, '../renderer/index.html'))
  }

  // 设置DevTools快捷键
  globalShortcut.register('CommandOrControl+Shift+k', function () {
    mainWindow.webContents.openDevTools()
  })

  return mainWindow
}


app.whenReady().then(() => {
  electronApp.setAppUserModelId('com.electron')

  app.on('browser-window-created', (_, window) => {
    optimizer.watchWindowShortcuts(window)
  })

  ipcMain.on('ping', () => console.log('pong'))

  createWindow()

  app.on('activate', function () {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})


// // 程序单例模式
// let myWindow = null
// const gotTheLock = app.requestSingleInstanceLock()
// if (!gotTheLock) {
//   // 如果已经有同样的该程序正在运行，则不启动
//   app.quit()
// } else {
//   // 如果检测到有同样的该程序正在试图启动...
//   app.on('second-instance', (event, commandLine, workingDirectory, additionalData) => {
//     if (myWindow) {
//       // 弹出系统提示对话框
//       dialog.showMessageBox({
//         message: '此程序已经正在运行'
//       })
//       // 如果该程序窗口处于最小化状态，则恢复窗口
//       if (myWindow.isMinimized()) myWindow.restore()
//       // 将该程序窗口置为当前聚焦态
//       myWindow.focus()
//     }
//   })

//   app.whenReady().then(() => {

//     console.log('app.whenReady')

//     electronApp.setAppUserModelId('com.electron')

//     app.on('browser-window-created', (_, window) => {
//       optimizer.watchWindowShortcuts(window)
//     })

//     myWindow = createWindow()

//     app.on('activate', function () {
//       if (BrowserWindow.getAllWindows().length === 0) createWindow()
//     })
//   })

//   app.on('window-all-closed', () => {
//     if (process.platform !== 'darwin') {
//       app.quit()
//     }
//   })
// }
